//axios的基础封装

import axios from 'axios'
import { ElMessage } from "element-plus";
import "element-plus/theme-chalk/el-message.css";
import { useUserStore } from '@/stores/user';
import { useRouter } from 'vue-router';

const http= axios.create({
    baseURL:"http://pcapi-xiaotuxian-front-devtest.itheima.net",
    timeout:5000
})


//拦截器

// 添加请求拦截器
http.interceptors.request.use(config=>{
    // 在发送请求之前做些什么
    const UserStore=useUserStore()
    const token=UserStore.userInfo.token
    //数据携带token
    if(token){
      config.headers.Authorization=`Bearer ${token}`
    }
    return config;
  }, e=>Promise.reject(e))

// 添加响应拦截器
http.interceptors.response.use(res=>res.data,e=>{
  const UserStore=useUserStore()
  const route =useRouter()
  // 响应拦截请求
  ElMessage({type:'warning',message:e.response.data.message})
  // 401token 请求失败
  if(e.response.status==='401'){
   //清除本地数据
   UserStore.cancleLogin()
   route.push('/login')
  }
  return Promise.reject(e)
});
export default http